/*
*	File: CoreMesh.h
*	Date: 12/18/2011
*	Author: Ivan Gao
*	Desc: 
*/
#ifndef COREMESH_H_
#define COREMESH_H_
#include "CommonDef.h"
#include <vector>
using namespace std;
class SCoreSubMesh;
typedef vector<SCoreSubMesh *> SCoreSubMeshVector;
class SIMPLEANIMATION_API SCoreMesh
{
public:
	SCoreMesh ();
	~SCoreMesh ();
	int AddCoreSubMesh (SCoreSubMesh * pCoreSubMesh);
	SCoreSubMesh * GetCoreSubMesh (int nSubMeshId);
	const SCoreSubMesh * GetCoreSubMesh (int nSubMeshId) const;
	bool RemoveCoreSubMesh (int nSubMeshId);
	int GetCoreSubMeshCount () const;
	void Reserve (int nSubMeshCount);
	SCoreSubMeshVector & GetCoreSubMeshVector();
	const SCoreSubMeshVector & GetCoreSubMeshVector () const;
	int AddAsMorphTarget (SCoreMesh * pCoreMesh, const char * pMorphMeshName);
	void Scale (float scale);
	void SetFileName (const char * pFileName);
	const string GetFileName (void) const;
	void SetName (const char * pName);
	const string & GetName (void) const;
private:
	SCoreSubMeshVector	m_vecCoreSubMesh;
	string				m_strName;
	string				m_strFileName;

}; // SCoreMesh
#endif // COREMESH_H_